#include<iostream>

using namespace std;

class Shape{
    protected:
        int width;
        int heigth;
    public:
        Shape(int a = 0, int b = 0){
            width = a;
            heigth = b;
        }
        virtual int area(){
            cout<<"Parent class area :"<<endl;
            return 0;
        }
};

class Rectangle: public Shape{
    public:
        Rectangle(int a = 0,int b = 0):Shape(a,b){

        };
        int area(){
            cout<<"Rectangle class area :"<<endl;
            return width * heigth;
        }
};

class Triangle: public Shape{
    public:
        Triangle(int a = 0,int b = 0):Shape(a,b){

        };
        int area(){
            cout<<"triangle class area :"<<endl;
            return width * heigth / 2;
        }
};

int main()
{
    Shape *shape;
    Rectangle rect(10,7);
    Triangle tri(10,5);

    //存储矩形区域
    shape = &rect;
    shape->area();
    shape = &tri;
    shape->area();
    
    return 0;
}